In today's technological environment, people often keep calendars on their computers in order to maintain their schedules. In a cooperative electronic environment represented by a distributed computer network, where computers can communicate with each other, calendar programs allow users to electronically query each others' schedules. Accordingly, an individual user of a calendar program in a group of users can pick a time at which to plan a meeting which does not conflict with the schedules of proposed attendees. The individual user can direct a computer to query a computer file (or files) maintained by the calendar program. The computer file contains, among other things, availability information including the times of the day that each of the proposed attendees using the calendar program are either free or busy (the "free/busy information"). In this manner, the individual user is presented with the times of day that each of the proposed attendees can or cannot attend the meeting. This feature allows the individual user to pre-select an appropriate day and time to plan the meeting so that the largest number of proposed attendees can attend.
Several problems face existing calendar programs. One problem is the closed-environment nature of the existing calendar programs. A user of an existing calendar program only has access to the availability information of the other users of the existing calendar program. This limitation creates a problem if the user wishes to invite a non-user of the existing calendar program to attend the meeting. The user does not have access to the schedule of the non-user, even if the non-user maintains an electronic calendar, albeit on a different calendar program.
Most existing calendar programs maintain the availability information for each of the users in a single file having a proprietary format such that non-users cannot easily access it. The reason is three fold: (1) it makes locating and accessing the information easier for the calendar program, (2) individuals generally do not want to allow public access to their personal or business calendars, and (3) calendar programs typically have a proprietary data format and access infrastructure. For security reasons, it makes sense not to allow anyone outside of the users of the particular calendar program to have access to the schedules of the users. On the other hand, often is the case that a user will desire to plan a meeting and to invite a non-user.
Accordingly, a need exists for a system which allows both users and non-users of a calendar program to have access to the availability information associated with the schedules of each of the users, while not allowing non-users access to the actual calendars of the users.